package com.chenjun.datastructure;

import java.util.HashSet;
import java.util.Set;

public class URLPool
{
	// 存放已经访问过的url （hash索引以便快速判断是否访问过）
	private Set<String> visitedUrl = new HashSet<String>();
	// 存放未访问的url
	private Queue<String> unVisitedUrl = new Queue<String>();

	/**
	 * 已访问的URL添加到hashSet中
	 */
	public void addVisitedUrl(String url)
	{
		visitedUrl.add(url);
	}

	/**
	 * 访问过的url出列
	 */
	public Object removeUnVisitedUrl(String url)
	{
		return unVisitedUrl.outQueue(url);
	}

	/**
	 * 新增到未访问的URL队列中 已经访问过的url不再次访问
	 */
	public void addUnVisitedUrl(String url)
	{
		if (url != null 
				&& !url.trim().equals("") 
				&& !visitedUrl.contains(url))
		{
			unVisitedUrl.inQueue(url);
		}
	}

	/**
	 * 获得已经访问过的url数目
	 */
	public int getVisitedNumber()
	{
		return visitedUrl.size();
	}

	/**
	 * 判断未访问的url队列是否为空
	 */
	public boolean unVisitedUrlIsEmpty()
	{
		return unVisitedUrl.isEmpty();
	}

	public Set<String> getVisitedUrl()
	{
		return visitedUrl;
	}

	public Queue<String> getUnVisitedUrl()
	{
		return unVisitedUrl;
	}
	
}
